package com.ocom.common.enums;


/**
 * 服务间调用code msg
 */
public enum ResultEnum {

    Success_Success(200, "成功"),
    Err_201(201, "签名验证参数为空"),
    Err_202(202, "验签失败/解密失败"),
    Err_203(203, "必填参数值为空"),
    Err_204(204, "未开通权限"),
    Err_301(301, "单位编号不存在"),
    Err_302(302, "部门名称不存在"),
    Err_303(303, "人员不存在"),
    Err_304(304, "人员未退卡，不可离职"),
    Err_305(305, "人员未发卡"),
    Err_306(306, "人员编号已存在"),
    Err_307(307, "人员信息已存在"),
    Err_308(308, "部门名称已存在"),
    Err_309(309, "存在子部门，不可删除"),
    Err_310(310, "存在人员，不可删除"),
    Err_311(311, "用户不存在或者人员密码错误"),
    Err_400(400, "请求参数错误"),
    Err_500(500, "卡类名称已存在"),
    Err_501(501, "卡类限制错误"),
    Err_502(502, "维护中，请联系管理员或者稍后重试"),
    Err_600(600, "登录信息已过期"),
    Err_700(700, "充值金额超限（0-100000）"),
    Err_800(800, "卡余额不足"),
    Err_801(801, "卡余次不足）"),
    Err_802(802, "重复订单"),
    Err_803(803, "金额超限"),
    Err_804(804, "次数超限"),
    Err_805(805, "订单号不存在"),
    Err_806(806, "初始化消费账号失败,账户添加失败或被禁用"),
    Err_807(807, "新增消费白名单失败"),
    Err_808(808, "消费设备白名单更新失败"),
    Err_809(809, "修改账号信息失败"),
    Err_810(810, "账号重复"),
    Err_811(811, "修改账号类型信息失败"),
    Err_812(812, "此卡已注冊使用"),
    Err_813(813, "新增账号类型信息失败"),
    Err_814(814, "账号未初始化请选择账号类型"),
    Err_815(815, "账号已发卡"),
    Err_816(816, "账号未注册或密码错误"),
    Err_900(900, "系统错误"),
    Err_901(901, "系统限制，1分钟限制访问2次"),
    Err_1000(1000, "查询信息不存在"),
    Err_1001(1001, "查询内容为空"),
    Err_1002(1002, "信息重复"),
    Err_2001(2001, "验证码已失效"),
    Err_2002(2002, "验证码错误"),
    Err_2003(2003, "账号不存在或密码错误"),
    Err_2004(2004, "非法请求路径"),
    Err_2005(2005, "传参不规范"),
    Err_2006(2006, "旧密码错误"),
    Err_2007(2007, "单位名称已存在"),
    Err_2008(2008, "主账号已存在"),
    Err_2009(2009, "数据执行失败"),
    Err_2010(2010, "数据执行异常"),
    Err_2011(2011, "该设备已在其他单位使用"),
    Err_2012(2012, "文件已存在"),
    Err_2013(2013, "设备不存在"),
    Err_2014(2014, "更新失败,前后区域未变化"),
    Err_2015(2015, "区域不存在"),
    Err_2016(2016, "添加失败"),
    Err_2017(2017, "非备用机无法移除"),
    Err_2018(2018, "统一支付平台请求失败"),
    Err_2019(2019, "数据解析失败"),
    Err_2020(2020, "未找到人员"),
    Err_2021(2021, "身份证(护照)效验失败"),
    Err_2022(2022, "无可用设备"),
    Err_2023(2023, "设备不存在"),
    Err_2024(2024, "门禁记录服务异常"),
    Err_2025(2025, "Aiot服务异常"),
    Err_2026(2026, "Srvpaccess服务异常"),
    Err_2027(2027, "Webapi服务异常"),
    Err_2028(2028, "商户不存在"),
    Err_2030(2030, "支付渠道不存在"),
    Err_2031(2031, "单位商户信息不存在"),
    Err_2032(2032, "格式化失败"),
    Err_2033(2033, "日期时间错误"),
    Err_2034(2034, "不能查询超过6个月的数据"),
    Err_2035(2035, "人员已存在"),
    Err_2036(2036, "人员未找到"),
    Err_2037(2037, "有正常状态卡 无法删除"),
    Err_2038(2038, "更新人员信息失败"),
    Err_2039(2039, "已签约人员无法更换手机号，请联系管理员"),
    Err_2040(2040, "用户余额不为0，无法删除"),
    Err_2041(2041, "请核实，此订单已核销"),
    Err_2042(2042, "微信未绑定，请重新登录"),
    Err_2043(2043, "补缴中请稍后"),
    Err_2044(2044, "商户不允许补贴"),
    Err_2045(2045, "人员未配置部门"),
    Err_2046(2046, "为避免重复缴费，请等待30分钟后操作"),
    Err_2047(2047, "state空"),

    Err_2050(2050, "盐值不可以作为传参"),
    Err_3000(3000, "单位区域名称已存在"),
    Err_3001(3001, "区域设备信息存在"),
    Err_3002(3002, "初始化密钥失败"),
    Err_3003(3003, "设备编号重复"),
    Err_3004(3004, "使用期限大于或等于当前日期,不可删除"),
    Err_3005(3005, "设备启用状态，不可删除"),
    Err_3006(3006, "导入数据不可为空"),
    Err_3007(3007, "无权限开门"),
    Err_3008(3008, "设备不在线"),
    Err_3009(3009, "商户名称存在,不可使用"),
    Err_3010(3010, "设备未激活"),
    Err_3011(3011, "人员已经被绑定"),
    Err_3012(3012, "没有绑定成功，请先绑定人员手机号"),
    Err_3013(3013, "移除设备失败"),
    Err_3014(3014, "更新失败"),
    Err_3015(3015, "存在相同手机号，无法添加人员"),
    Err_3016(3016, "删除失败"),


    Err_3017(3017, "有实体卡的不能移除"),
    Err_3018(3018, "设备已激活"),
    Err_3019(3019, "设备已指定其他SaaS平台"),
    Err_3020(3020, "设备已指定其他代理商"),
    Err_3021(3021, "设备已指定其他单位"),
    Err_3022(3022, "设备已禁用"),
    Err_3023(3023, "解析数据为空"),
    Err_3024(3024, "商户名称已存在"),
    Err_3025(3025, "身份证重复，请修改信息"),
    Err_3026(3026, "修改失败"),
    Err_3027(3027, "片区名称已存在"),
    Err_3028(3028, "权限不足"),
    Err_3029(3029, "支付结果未知"),
    Err_3030(3030, "支付失败"),
    Err_3031(3031, "payoper支付异常"),
    Err_3032(3032, "支付查询失败"),
    Err_3033(3033, "已撤单"),
    Err_3034(3034, "转入退款"),
    Err_3035(3035, "撤单失败"),
    Err_3036(3036, "原订单号不存在"),
    Err_3037(3037, "支付状态不允许退款"),
    Err_3038(3038, "退款金额超过原订单支付金额"),
    Err_3039(3039, "退款失败"),
    Err_3040(3040, "登录超时"),
    Err_3041(3041, "登录异常，请重新登录"),
    Err_3042(3042, "Token解析异常"),
    Err_3043(3043, "添加失败"),
    Err_3044(3044, "数据不存在"),
    Err_3045(3045, "公众号未配置"),
    Err_3046(3046, "未配置手机号，请配置后重新登录"),
    Err_3047(3047, "代扣未签约"),
    Err_3048(3048, "商户支付渠道未配置"),
    Err_3049(3049, "未开通消费账户"),
    Err_3050(3050, "密码等级低，请修改密码"),
    Err_3051(3051, "生成签约申请失败，请联系管理员"),
    Err_3052(3052, "请勿重复签约"),
    Err_3053(3053, "统一支付参数未配置"),
    Err_3054(3054, "调用统一支付异常"),
    Err_3055(3055, "申请签约异常"),
    Err_3056(3056, "密码为空"),
    Err_3057(3057, "照片为空"),
    Err_3058(3058, "上传失败"),
    Err_3059(3059, "没有手机号"),
    Err_3060(3060, "不需要解约"),
    Err_3061(3061, "姓名和手机号不能为空"),
    Err_3062(3062, "token或单位id不能为空"),
    Err_3063(3063, "请输入正确手机号"),
    Err_3064(3064, "不需要更新"),
    Err_3065(3065, "单位、手机和验证码不能为空"),
    Err_3066(3066, "权限不足"),
    Err_3067(3067, "最多能查询31天数据"),
    Err_3068(3068, "无需解约"),
    Err_3069(3069, "自定义金额未启用"),
    Err_3070(3070, "超过自定义最大充值金额"),
    Err_3071(3071, "分类名称已存在"),
    Err_3072(3072, "code不合法"),
    Err_3073(3073, "暂不支持此支付方式"),
    Err_3074(3074, "8位设备号"),
    Err_3075(3075, "分库不存在"),
    Err_3076(3076, "页数和分页必须大于1"),
    Err_3077(3077, "发送短信失败"),
    Err_3078(3078, "邀请码已过期"),
    Err_3079(3079, "code已过期"),
    Err_3080(3080, "菜品不存在"),
    Err_3081(3081, "结算金额异常"),
    Err_3082(3082, "餐段未配置"),
    Err_3083(3083, "人脸检测不通过"),
    Err_3084(3084, "scene参数失效"),
    Err_3085(3085, "faceToken无支付权限"),
    Err_3086(3086, "解约失败"),
    Err_3087(3087, "标签名称已存在"),
    Err_3088(3088, "开学时间，请缓两天后下载报表"),
    Err_3089(3089, "有下级分类"),
    Err_3090(3090, "有所属食材"),
    Err_3091(3091, "上级分类不存在"),
    Err_3092(3092, "分类名称已存在"),
    Err_3093(3093, "食材使用中"),
    Err_3094(3094, "食材分类无效"),
    Err_3095(3095, "食材分类不存在"),
    Err_3096(3096, "食材名称或编码已存在"),
    Err_3097(3097, "未订餐"),
    Err_3098(3098, "当前餐段用户不可消费"),
    Err_3099(3099, "子账户名称已存在"),

    //对外相关接口响应
    Err_3100(3100, "获取配置失败，请检查参数！"),
    Err_3101(3101, "单位appid无效"),
    Err_3102(3102, "服务商appid无效"),
    Err_3103(3103, "密钥不存在"),
    Err_3104(3104, "权限未开通"),
    Err_3105(3105, "账号已发卡(挂失中)"),
    Err_3106(3106, "获取子账户异常"),
    Err_3107(3107, "密码强度不够，8-20位数字加大小写非123abc连续数字字符"),
    Err_3108(3108, "请稍后，限制60秒发送一次短信"),
    Err_3109(3109, "系统限制，10分钟限制5次短信"),
    Err_3110(3110, "系统限制，代扣测试2分钟1次"),
    Err_3111(3111, "系统限制，仅支持微信环境"),
    Err_3112(3112, "密码不一致"),
    Err_3113(3113, "绑定失败"),
    Err_3114(3114, "请稍后，限制ip,5秒发送一次短信"),
    Err_3115(3115, "配置已存在，请执行更新操作"),
    Err_3116(3116, "禁止餐段外消费"),
    Err_3117(3117, "餐段参数未传，请返回重新选择餐段"),
    Err_3118(3118, "系统限速，请等待"),
    Err_3119(3119, "限制分院仅第一次消费"),


    Err_3201(3201, "余额不足提现失败"),
    Err_3202(3202, "仅商户管理员可操作"),
    Err_3203(3203, "无需退款"),
    Err_3204(3204, "退款失败,接口仅支持公众号充值退款"),
    Err_3205(3205, "暂不支持退款"),
    Err_3206(3206, "转入退款中,遇到问题请及时联系管理员"),
    Err_3207(3207, "非退款中订单"),

    Err_3301(3301, "一个餐段不允许属于多个餐段组"),
    Err_3302(3302, "按天满减优惠幅度不能一致"),

    Err_3401(3401, "mqtt设备不存在"),
    Err_3402(3402, "非当天时间内"),

    Err_4001(4001, "单位未配置密钥"),
    Err_4002(4002, "数据处理异常，请联系管理员"),
    Err_4003(4003, "系统内部异常，请联系管理员"),
    Err_4004(4004, "数据加密处理异常，请联系管理员"),
    Err_4005(4005, "系统内部异常，请联系管理员"),
    Err_4006(4006, "发送Mq失败"),
    Err_4007(4007, "未配置单位signKey"),
    Err_4008(4008, "未配置设备号"),
    Err_4009(4009, "请求频率受限"),
    Err_4010(4010, "身份证姓名不能为空"),
    Err_4011(4011, "生成Excel失败"),
    Err_4012(4012, "上传Excel失败"),
    Err_4013(4013, "提交申请失败"),
    Err_4014(4014, "系统异常，请联系管理员"),
    Err_4015(4015, "无在线的中台设备"),
    Err_4016(4016, "设备不在线"),
    Err_4017(4017, "未找到人员"),
    Err_4018(4018, "照片检测到人数超过1人"),
    Err_4019(4019, "未能打开文件"),
    Err_4020(4020, "验证码未通过验证"),
    Err_4021(4021, "卡状态异常"),
    Err_4022(4022, "账号禁用"),
    Err_4023(4023, "人员状态异常(消费账户)"),
    Err_4024(4024, "余额不足"),
    Err_4025(4025, "卡的有效时间已过期"),
    Err_4026(4026, "获取验证码失败"),
    Err_4027(4027, "token非法"),
    Err_4028(4028, "登录信息过期，请重新登录"),
    Err_4029(4029, "该单位未配置支付参数"),
    Err_4030(4030, "下单失败，请重试"),
    Err_4031(4031, "餐段次数超限"),
    Err_4032(4032, "餐段金额超限"),
    Err_4033(4033, "天次数超限"),
    Err_4034(4034, "天金额超限"),
    Err_4035(4035, "月次数超限"),
    Err_4036(4036, "月金额超限"),
    Err_4037(4037, "消费类型名称已存在"),
    Err_4038(4038, "不支持账户付款方式"),
    Err_4039(4039, "查询时间大于当前年份"),
    Err_4040(4040, "不支持其他方式充值"),
    Err_4041(4041, "签名验证失败"),
    Err_4042(4042, "权限组编号或名称已存在"),
    Err_4043(4043, "权限组名称已存在"),
    Err_4044(4044, "页面编码已存在"),
    Err_4045(4045, "页面名称已存在"),
    Err_4046(4046, "页面不存在"),
    Err_4047(4047, "页面编号和按钮编号查询为空"),
    Err_4048(4048, "按钮编码已存在"),
    Err_4049(4049, "按钮名称已存在"),
    Err_4050(4050, "按钮不存在"),
    Err_4051(4051, "按钮名称已存在"),
    Err_4052(4052, "存在下级菜单"),
    Err_4053(4053, "菜单不存在"),
    Err_4054(4054, "上级菜单不存在"),
    Err_4055(4055, "菜单类型不正确"),
    Err_4056(4056, "菜单名称已存在"),
    Err_4057(4057, "补贴已存在"),
    Err_4058(4058, "补贴不存在"),
    Err_4059(4059, "状态不合理"),
    Err_4060(4060, "没有计划发放日期"),
    Err_4061(4061, "重复发放"),
    Err_4062(4062, "上级分类不存在"),
    Err_4063(4063, "分类名称已存在"),
    Err_4064(4064, "有下级分类"),
    Err_4065(4065, "菜品分类无效"),
    Err_4066(4066, "菜品分类不存在"),
    Err_4067(4067, "菜品名称或代码已存在"),
    Err_4068(4068, "有所属菜品"),
    Err_4069(4069, "保存失败"),
    Err_4070(4070, "补贴计划不存在"),
    Err_4071(4071, "消费券种类名称已存在"),
    Err_4072(4072, "有套票使用"),
    Err_4073(4073, "有消费券正在使用"),
    Err_4074(4074, "生成设备收款码失败"),
    Err_4075(4075, "消费点无法确定"),
    Err_4076(4076, "平台代码已存在"),
    Err_4077(4077, "平台名称已存在"),
    Err_4078(4078, "平台代码不存在"),
    Err_4079(4079, "人员赠券已存在,请勿重复赠券"),

    Err_4080(4080, "系统角色无法添加"),
    Err_4081(4081, "该单位角色已存在无法添加"),
    Err_4082(4082, "插入补缴失败"),
    Err_4083(4083, "插入补缴失败1"),
    Err_4084(4084, "编号长度不足"),
    Err_4085(4085, "订单支付中禁止添加"),

    //平台协议管理
    Err_4090(4090, "接口代码已存在"),
    Err_4091(4091, "接口名称已存在"),
    Err_4092(4092, "接口代码不存在"),
    Err_4093(4093, "服务商代码已存在"),
    Err_4094(4094, "服务商名称已存在"),
    Err_4095(4095, "appid已存在"),
    Err_4096(4096, "服务商代码不存在"),
    Err_4097(4097, "平台已存在"),
    Err_4098(4098, "平台代码不存在"),
    Err_4099(4099, "平台对接不存在"),


    Err_9999(9999, "测试返回9999"),

    Err_1(1, "单位不存在"),
    Err_2(2, "服务商不存在"),
    Err_3(3, "密钥不存在"),
    Err_4(4, "未开通权限"),
    Err_5(5, "ip受限"),


    Err_4100(4100, "数据不符"),
    Err_4101(4101, "充值账单不存在"),
    Err_4102(4101, "点击太快，请稍后"),
    Err_4103(4103, "操作太快，请稍后重试"),

    Err_4112(4112, "处理消费数据失败"),
    Err_4113(4113, "账号或密码错误"),
    Err_4114(4114, "获取token失败"),

    Err_4115(4115, "获取单位平台对接列表失败"),
    Err_4116(4116, "读取通讯接口URL失败"),
    Err_4117(4117, "通讯接口URL为空"),
    Err_4118(4118, "异常响应"),
    Err_4119(4119, "解约失败"),

    Err_4120(4120, "计划名称已存在"),

    Err_4121(4121, "小钱包名称已存在"),

    Err_4123(4123, "赠券名称已存在."),
    Err_4130(4130, "时区编号已存在"),
    Err_4131(4131, "时区名称已存在"),
    Err_4132(4132, "名称已存在"),
    Err_4133(4133, "该记录状态非数据准备"),
    Err_4134(4134, "订单金额异常"),
    Err_4135(4135, "二维码获取失败"),
    Err_4136(4136, "已退餐或核销，不可重复退餐"),
    Err_4137(4137, "存在多个人脸"),
    Err_4138(4138, "不支持跨月导出"),
    Err_4139(4139, "当前时间不可以退餐"),
    Err_4140(4140, "禁止重复打印"),
    Err_4141(4141, "当前时间不可以请假或取消请假"),
    Err_4142(4142, "不支持跨月查询"),
    Err_4143(4143, "无排餐点"),
    Err_4144(4144, "当前时间不可以订餐"),
    Err_4145(4145, "非最新订单，禁止退餐"),
    Err_4146(4146, "当前时间禁止打印"),
    Err_4147(4147, "解码异常"),
    Err_4148(4148, "请先添加消费点#身份0的餐段数据"),
    Err_4149(4149, "消费点餐段时间应在身份0的范围内"),
    Err_4150(4150, "代订餐项目不存在"),
    Err_4151(4151, "未读取到文件"),
    Err_4152(4152, "上传失败minio服务异常"),
    Err_4153(4153, "不能选跨周日期"),
    Err_4154(4154, "不能选跨月日期"),

    Err_4207(4207, "开始时间不能大于结束时间"),
    Err_4201(4201, "未匹配到人员，或该优惠券批次人员已有优惠券"),
    Err_4202(4202,"汇总日期需小于当前日期"),
    Err_4203(4203,"仅可上传文件和excel"),
    Err_4204(4204,"读取excel失败"),

    Err_4210(4210,"升级编码已存在"),
    Err_4211(4211,"升级编码不存在"),

    Err_4300(4300,"标签组已存在"),
    Err_4301(4301,"标签组名称已存在"),
    Err_4302(4302,"标签组已被使用，是否确认删除"),

    Err_4401(4401,"excel中未匹配到系统中餐段"),
    Err_4402(4402,"计划名称已存在"),

    Err_4500(4500,"设备类型与设备组不符合"),
    Err_4501(4501,"该设备已存在于设备组"),
    Err_4502(4502,"设备组中设备数到达上限"),
    Err_4503(4503,"该设备已经属于另一个设备组"),

    Err_4600(4600,"无订餐数据"),

    Err_4700(4700,"验证码发送太频繁，请稍后重试"),
    Err_4701(4701,"当天发送验证码超过限制"),
    Err_4702(4702,"手机未绑定商户管理员"),
    Err_4703(4703,"验证码过期"),
    Err_4704(4704,"验证码不正确"),
    Err_4705(4705,"手机不正确"),
    Err_4706(4706,"当前主账号已被绑定"),

    Err_5000(5000,"支付失败"),
    Err_5001(5001,"流程配置不存在"),
    Err_5002(5002,"变量名未配置管理员"),
    Err_5003(5003,"流程关键字已存在"),
    Err_5004(5004,"变量名已存在"),
    Err_5005(5005,"无效审批人"),
    Err_5006(5006,"无待办事项"),
    Err_5007(5007,"businessKey错误"),
    Err_5008(5008,"申请失败"),
    Err_5009(5009,"修改失败"),
    Err_5010(5010,"取消失败"),
    Err_5011(5011,"支付金额要大于0.00元"),



    Err_6001(6001,"机身编号已存在"),
    Err_6002(6002,"设备不存在"),
    Err_6003(6003,"设备不可用"),
    Err_6004(6004,"订单异常"),
    Err_6005(6005,"设备异常"),
    Err_6006(6006,"设备未能启动"),
    Err_6007(6007,"撤单失败"),
    Err_6008(6008,"设备未联网"),
    ;


    private final Integer key;
    private final String msg;

    ResultEnum(Integer key, String msg) {
        this.key = key;
        this.msg = msg;
    }

    public Integer getKey() {
        return key;
    }

    public String getMsg() {
        return msg;
    }

    /**
     * 根据key获取value
     *
     * @param key : 键值key
     * @return String
     */
    public static String getValueByKey(Integer key) {
        ResultEnum[] enums = ResultEnum.values();
        for (int i = 0; i < enums.length; i++) {
            if (enums[i].getKey().equals(key)) {
                return enums[i].getMsg();
            }
        }
        return "";
    }


}
